Apache Commons Collections লাইব্রেরি একটি শক্তিশালী MultiValueMap ইন্টারফেস প্রদান করে যা একটি কী-এ একাধিক মান (values) সংরক্ষণ করতে সাহায্য করে। এটি একটি বিশেষ ধরনের Map যেখানে প্রতিটি কী (key) একাধিক মান (value) এর সাথে সম্পর্কিত থাকে। সাধারণত, Map শুধুমাত্র একটি কী-এর সাথে একক মান সংরক্ষণ করে, কিন্তু MultiValueMap এর মাধ্যমে আপনি একটি কী-এ একাধিক মান সংরক্ষণ করতে পারেন।
এই নিবন্ধে, আমরা MultiValueMap এর ব্যবহার এবং multiple values handling কিভাবে করা যায় তা বিস্তারিতভাবে আলোচনা করব।
MultiValueMap একটি Map এর একটি ইন্টারফেস যা একাধিক মান (value) একটি কী (key)-এর সাথে সংরক্ষণ করতে সক্ষম। উদাহরণস্বরূপ, আপনি যদি একটি কী fruits
এর জন্য একাধিক মান রাখতে চান যেমন "apple", "banana", এবং "cherry", তবে MultiValueMap এটি সহজে পরিচালনা করতে সহায়তা করে। এটি সাধারণত org.apache.commons.collections4.MultiMap
ইন্টারফেস দ্বারা বাস্তবায়িত হয় এবং বিভিন্ন কোলেকশন যেমন MultiValueMap
, ListValuedMap
ইত্যাদি প্রদান করে।
MultiValueMap কোলেকশনে একটি কী-এ একাধিক মান সংরক্ষণ করা যেতে পারে, যেখানে প্রতিটি কী একটি List, Set বা অন্য কোনো কোলেকশন টাইপের সাথে যুক্ত থাকে।
MultiValueMap এর বিভিন্ন ধরনের ব্যবহার রয়েছে, এবং এটি সাধারণত ListValuedMap
ক্লাস দ্বারা ইমপ্লিমেন্ট করা হয়। এই কোলেকশনটি একটি কী-এ একাধিক মান (values) সংরক্ষণ করতে সহায়তা করে। নিচে MultiValueMap ব্যবহারের উদাহরণ দেওয়া হলো।
import org.apache.commons.collections4.MultiMap;
import org.apache.commons.collections4.map.MultiValueMap;
import org.apache.commons.collections4.ListValuedMap;
import java.util.Collection;
public class MultiValueMapExample {
public static void main(String[] args) {
// Create a MultiValueMap (ListValuedMap implementation)
ListValuedMap<String, String> multiValueMap = new MultiValueMap<>();
// Add multiple values for the same key
multiValueMap.put("fruits", "apple");
multiValueMap.put("fruits", "banana");
multiValueMap.put("fruits", "cherry");
multiValueMap.put("vegetables", "carrot");
multiValueMap.put("vegetables", "broccoli");
// Display the map
System.out.println("Fruits: " + multiValueMap.get("fruits"));
System.out.println("Vegetables: " + multiValueMap.get("vegetables"));
// Add another fruit
multiValueMap.put("fruits", "grape");
System.out.println("Updated Fruits: " + multiValueMap.get("fruits"));
}
}
এখানে:
ListValuedMap
ইমপ্লিমেন্টেশন ব্যবহার করে একটি MultiValueMap তৈরি করা হয়েছে।put()
মেথডের মাধ্যমে একাধিক মান (values) একই কী-এ (এখানে "fruits") যোগ করা হয়েছে।get()
মেথড ব্যবহার করে একটি কী-এর সাথে সম্পর্কিত মান গুলির তালিকা পাওয়া যাচ্ছে।আউটপুট:
Fruits: [apple, banana, cherry]
Vegetables: [carrot, broccoli]
Updated Fruits: [apple, banana, cherry, grape]
এখানে, "fruits" কী-এর সাথে চারটি মান রয়েছে এবং "vegetables" কী-এ দুটি মান রয়েছে।
MultiValueMap এ আরও কিছু কার্যকারিতা রয়েছে যা আপনাকে একাধিক মান পরিচালনা করতে সহায়তা করে:
remove()
: একাধিক মান মুছে ফেলাএটি একটি কী-এর সাথে সম্পর্কিত সব মান বা নির্দিষ্ট মান মুছে ফেলতে সাহায্য করে।
multiValueMap.remove("fruits", "banana"); // Removes "banana" from "fruits"
putAll()
: একাধিক মান যোগ করাএই মেথডটি একাধিক মান একসাথে একটি কী-এ যোগ করতে ব্যবহৃত হয়।
multiValueMap.putAll("fruits", List.of("orange", "pear"));
containsKey()
এবং containsValue()
: কী এবং মান চেক করাboolean hasFruits = multiValueMap.containsKey("fruits"); // Checks if "fruits" exists
boolean hasApple = multiValueMap.containsValue("apple"); // Checks if "apple" exists
size()
: কোলেকশনের আকার জানানোint size = multiValueMap.size(); // Returns the total number of key-value pairs
clear()
: কোলেকশন পরিষ্কার করাmultiValueMap.clear(); // Clears all the key-value pairs from the map
ArrayListValuedMap
: এটি একটি List-ভিত্তিক কোলেকশন যা একটি কী-এর সাথে একাধিক মান সংরক্ষণ করতে সাহায্য করে।HashSetValuedMap
: এটি একটি Set-ভিত্তিক কোলেকশন যা একাধিক মান সংরক্ষণ করার জন্য ব্যবহৃত হয়, তবে এটি ডুপ্লিকেট মান অনুমোদন করে না।import org.apache.commons.collections4.map.ArrayListValuedMap;
public class ArrayListValuedMapExample {
public static void main(String[] args) {
ArrayListValuedMap<String, String> multiValueMap = new ArrayListValuedMap<>();
multiValueMap.put("fruits", "apple");
multiValueMap.put("fruits", "banana");
multiValueMap.put("fruits", "cherry");
System.out.println(multiValueMap.get("fruits")); // Output: [apple, banana, cherry]
}
}
MultiValueMap হল একটি শক্তিশালী ডেটা স্ট্রাকচার যা Apache Commons Collections লাইব্রেরি থেকে আসছে এবং এটি একটি কী-এ একাধিক মান (values) সংরক্ষণ করতে সাহায্য করে। এটি সাধারণ Map কোলেকশনের সাথে তুলনামূলকভাবে আরও বেশি নমনীয়তা এবং কার্যকারিতা সরবরাহ করে, যেমন একটি কী-এ একাধিক মান সংরক্ষণ করা, ডুপ্লিকেট মান অনুমোদন করা, এবং বিভিন্ন ধরনের কোলেকশন ফিচার প্রয়োগ করা। MultiValueMap এর মাধ্যমে আপনি সহজেই ডেটার সাথে সম্পর্কিত একাধিক মানের কাজ করতে পারেন এবং এটি বিভিন্ন কোলেকশন ইমপ্লিমেন্টেশন যেমন ListValuedMap, ArrayListValuedMap, HashSetValuedMap ইত্যাদি প্রদান করে।